#pragma once

#include "mprpcconfig.h"
#include "mprpcchannel.h"
#include "mprpccontroller.h"

/**
 * mprpc 框架的基础类
 * 设计为单例模式
 * 负责框架的一些基础操作
*/
class MprpcApplication
{
public:
    static void Init(int argc, char **argv);
    static MprpcApplication& GetInstance();
    static MprpcConfig& GetConfig();

private:
    static MprpcConfig m_config;

    MprpcApplication() {}
    MprpcApplication(const MprpcApplication&) = delete;  // 删除拷贝构造
    MprpcApplication(MprpcApplication&&) = delete;  // 禁用移动构造函数
};